/****************************************************************************************
 * 
 *  Author:         CFY
 *  Date:           2025-07-08
 *  Description:    MQTT通信处理
 *  Version:        V1.1
 * 
****************************************************************************************/

#ifndef MQTT_HANDLER_H
#define MQTT_HANDLER_H

#include <MQTTClient.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <unistd.h>

// 定义一个有参宏，出错就会打印错误信息
#define ERROR(x) do{ \
 perror(x); \
 printf("%s-%s-%d\n", __FILE__, __func__, __LINE__); \
}while(0)

// MQTT 客户端ID， 要保证唯一性
#define MQTT_CLIENTID    "data_report_client"
#define MQTT_PORT        1883                     

// MQTT通信主题 
#define TOPIC_DATA_UP       "/app/data/up"              // 数据上报
#define TOPIC_DATA_DOWN     "/app/data/down"
#define TOPIC_CTL_UP        "/app/control/up"
#define TOPIC_CTL_DOWN      "/app/control/down"         // 指令下发

// 初始化MQTT
int mqtt_init(const char *addr);
// 向主题发送一条消息
int mqtt_publish(const char *topic, char *msg);

#endif